package com.gsk.europepharma.salesReport.hibernate.base;

import java.io.Serializable;


/**
 * This is an object that contains data related to the SP_BO.TB_SP_BO_SR_PARAM_SEUIL table.
 * Do not modify this class because it will be overwritten if the configuration file
 * related to this class is modified.
 *
 * @hibernate.class
 *  table="SP_BO.TB_SP_BO_SR_PARAM_SEUIL"
 */

public abstract class BasetbSpBoSRParamSeuil  implements Serializable {

	public static String REF = "tbSpBoSRParamSeuil";
	public static String PROP_MAJ_USER = "majUser";
	public static String PROP_DATE_MAJ = "dateMaj";
	public static String PROP_CS_NETWORK = "csNetwork";
	public static String PROP_SEUIL_MAX = "seuilMax";
	public static String PROP_SEUIL_MIN = "seuilMin";


	// constructors
	public BasetbSpBoSRParamSeuil () {
		initialize();
	}

	/**
	 * Constructor for primary key
	 */
	public BasetbSpBoSRParamSeuil (
		java.lang.Integer csDivision,
		java.lang.Integer csAdmPdt,
		java.lang.Integer csMonth,
		java.lang.String indicateur) {

		this.setCsDivision(csDivision);
		this.setcsAdmPdt(csAdmPdt);
		this.setCsMonth(csMonth);
		this.setIndicateur(indicateur);
		initialize();
	}

	protected void initialize () {}



	private int hashCode = Integer.MIN_VALUE;

	// primary key

	private java.lang.Integer csDivision;

	private java.lang.Integer csAdmPdt;

	private java.lang.Integer csMonth;

	private java.lang.String indicateur;

	// fields
	private java.lang.Integer csNetwork;
	private java.lang.Double seuilMin;
	private java.lang.Double seuilMax;
	private java.lang.String majUser;
	private java.util.Date dateMaj;



	/**
     * @hibernate.property
     *  column=CS_DIVISION
	 * not-null=true
	 */
	public java.lang.Integer getCsDivision () {
		return this.csDivision;
	}

	/**
	 * Set the value related to the column: CS_DIVISION
	 * @param csDivision the CS_DIVISION value
	 */
	public void setCsDivision (java.lang.Integer csDivision) {
		this.csDivision = csDivision;
		this.hashCode = Integer.MIN_VALUE;
	}

	/**
     * @hibernate.property
     *  column=cs_adm_pdt
	 * not-null=true
	 */
	public java.lang.Integer getcsAdmPdt () {
		return this.csAdmPdt;
	}

	/**
	 * Set the value related to the column: cs_adm_pdt
	 * @param csAdmPdt the cs_adm_pdt value
	 */
	public void setcsAdmPdt (java.lang.Integer csAdmPdt) {
		this.csAdmPdt = csAdmPdt;
		this.hashCode = Integer.MIN_VALUE;
	}

	/**
     * @hibernate.property
     *  column=CS_MONTH
	 * not-null=true
	 */
	public java.lang.Integer getCsMonth () {
		return this.csMonth;
	}

	/**
	 * Set the value related to the column: CS_MONTH
	 * @param csMonth the CS_MONTH value
	 */
	public void setCsMonth (java.lang.Integer csMonth) {
		this.csMonth = csMonth;
		this.hashCode = Integer.MIN_VALUE;
	}

	/**
     * @hibernate.property
     *  column=INDICATEUR
	 * not-null=true
	 */
	public java.lang.String getIndicateur () {
		return this.indicateur;
	}

	/**
	 * Set the value related to the column: INDICATEUR
	 * @param indicateur the INDICATEUR value
	 */
	public void setIndicateur (java.lang.String indicateur) {
		this.indicateur = indicateur;
		this.hashCode = Integer.MIN_VALUE;
	}




	/**
	 * Return the value associated with the column: CS_NETWORK
	 */
	public java.lang.Integer getCsNetwork () {
		return csNetwork;
	}

	/**
	 * Set the value related to the column: CS_NETWORK
	 * @param csNetwork the CS_NETWORK value
	 */
	public void setCsNetwork (java.lang.Integer csNetwork) {
		this.csNetwork = csNetwork;
	}



	/**
	 * Return the value associated with the column: SEUIL_MIN
	 */
	public java.lang.Double getSeuilMin () {
		return seuilMin;
	}

	/**
	 * Set the value related to the column: SEUIL_MIN
	 * @param seuilMin the SEUIL_MIN value
	 */
	public void setSeuilMin (java.lang.Double seuilMin) {
		this.seuilMin = seuilMin;
	}



	/**
	 * Return the value associated with the column: SEUIL_MAX
	 */
	public java.lang.Double getSeuilMax () {
		return seuilMax;
	}

	/**
	 * Set the value related to the column: SEUIL_MAX
	 * @param seuilMax the SEUIL_MAX value
	 */
	public void setSeuilMax (java.lang.Double seuilMax) {
		this.seuilMax = seuilMax;
	}



	/**
	 * Return the value associated with the column: MAJ_USER
	 */
	public java.lang.String getMajUser () {
		return majUser;
	}

	/**
	 * Set the value related to the column: MAJ_USER
	 * @param majUser the MAJ_USER value
	 */
	public void setMajUser (java.lang.String majUser) {
		this.majUser = majUser;
	}



	/**
	 * Return the value associated with the column: D_MAJ
	 */
	public java.util.Date getDateMaj () {
		return dateMaj;
	}

	/**
	 * Set the value related to the column: D_MAJ
	 * @param dateMaj the D_MAJ value
	 */
	public void setDateMaj (java.util.Date dateMaj) {
		this.dateMaj = dateMaj;
	}




	public boolean equals (Object obj) {
		if (null == obj) return false;
		if (!(obj instanceof com.gsk.europepharma.salesReport.hibernate.tbSpBoSRParamSeuil)) return false;
		else {
			com.gsk.europepharma.salesReport.hibernate.tbSpBoSRParamSeuil tbSpBoSRParamSeuil = (com.gsk.europepharma.salesReport.hibernate.tbSpBoSRParamSeuil) obj;
			if (null != this.getCsDivision() && null != tbSpBoSRParamSeuil.getCsDivision()) {
				if (!this.getCsDivision().equals(tbSpBoSRParamSeuil.getCsDivision())) {
					return false;
				}
			}
			else {
				return false;
			}
			if (null != this.getcsAdmPdt() && null != tbSpBoSRParamSeuil.getcsAdmPdt()) {
				if (!this.getcsAdmPdt().equals(tbSpBoSRParamSeuil.getcsAdmPdt())) {
					return false;
				}
			}
			else {
				return false;
			}
			if (null != this.getCsMonth() && null != tbSpBoSRParamSeuil.getCsMonth()) {
				if (!this.getCsMonth().equals(tbSpBoSRParamSeuil.getCsMonth())) {
					return false;
				}
			}
			else {
				return false;
			}
			if (null != this.getIndicateur() && null != tbSpBoSRParamSeuil.getIndicateur()) {
				if (!this.getIndicateur().equals(tbSpBoSRParamSeuil.getIndicateur())) {
					return false;
				}
			}
			else {
				return false;
			}
			return true;
		}
	}

	public int hashCode () {
		if (Integer.MIN_VALUE == this.hashCode) {
			StringBuilder sb = new StringBuilder();
			if (null != this.getCsDivision()) {
				sb.append(this.getCsDivision().hashCode());
				sb.append(":");
			}
			else {
				return super.hashCode();
			}
			if (null != this.getcsAdmPdt()) {
				sb.append(this.getcsAdmPdt().hashCode());
				sb.append(":");
			}
			else {
				return super.hashCode();
			}
			if (null != this.getCsMonth()) {
				sb.append(this.getCsMonth().hashCode());
				sb.append(":");
			}
			else {
				return super.hashCode();
			}
			if (null != this.getIndicateur()) {
				sb.append(this.getIndicateur().hashCode());
				sb.append(":");
			}
			else {
				return super.hashCode();
			}
			this.hashCode = sb.toString().hashCode();
		}
		return this.hashCode;
	}


	public String toString () {
		return super.toString();
	}


}